package Terminal.TechnicalServices.Mapper;

import java.util.ArrayList;

import Terminal.Entity.Dominio.ELineaProgetto;
import Terminal.Entity.Dominio.ELineaSottoprogetto;
import Terminal.Entity.IceClasses.ELineaProgettoI;
import Terminal.Entity.IceClasses.ELineaRegolaI;

public class MLineaProgetto implements Mapper {

	@Override
	public ELineaProgettoI getIceObj(Object hibObj) {

		ELineaProgettoI iceLineaProgetto = null;
		MLineaSottoprogetto lineaMapper = new MLineaSottoprogetto();
		
		if ( hibObj instanceof ELineaProgetto)
		{
			iceLineaProgetto = new ELineaProgettoI();
			iceLineaProgetto.lineeSottoprogetto = new ArrayList<EntityCondivise.ELineaSottoprogetto>();
			
			iceLineaProgetto.costo = ((ELineaProgetto) hibObj).getCosto();
			iceLineaProgetto.descrizione = ((ELineaProgetto) hibObj).getDescrizione();
			iceLineaProgetto.misura = ((ELineaProgetto) hibObj).getMisura();
			
			for( ELineaSottoprogetto hibLine: ((ELineaProgetto) hibObj).getLineesottoprogetto() )
				iceLineaProgetto.lineeSottoprogetto.add( lineaMapper.getIceObj(hibLine) );
		}
		
		return iceLineaProgetto;
	}

	@Override
	public ELineaProgetto getHibObj(Object iceObj) {

		ELineaProgetto hibLineaProgetto = null;
		MLineaSottoprogetto lineaMapper = new MLineaSottoprogetto();
		
		if ( iceObj instanceof ELineaProgettoI)
		{
			hibLineaProgetto = new ELineaProgetto();
			hibLineaProgetto.setLineesottoprogetto(new ArrayList<ELineaSottoprogetto>());
			
			hibLineaProgetto.setCosto(((ELineaRegolaI) iceObj).costo);
			hibLineaProgetto.setDescrizione(((ELineaRegolaI) iceObj).descrizione);
			hibLineaProgetto.setMisura(((ELineaRegolaI) iceObj).misura);
			
			for(EntityCondivise.ELineaSottoprogetto icePrjLine: ((ELineaProgettoI) iceObj).lineeSottoprogetto)
				hibLineaProgetto.getLineesottoprogetto().add( lineaMapper.getHibObj(icePrjLine) );	
		}
		
		return hibLineaProgetto;
		
	}	
	
}
